package com.apartment.own.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.apartment.common.core.domain.BaseEntity;
import com.apartment.own.domain.group.InsertResourceMode;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.apartment.common.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.validation.constraints.NotNull;

/**
 * 房间配置对象 own_res_house_room_conf
 *
 * @author @Dog_E
 * @date 2020-08-28
 */
@Data
@ApiModel("房间配置")
public class OwnResHouseRoomConf extends BaseEntity {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty("ID")
    private Long id;

    @ApiModelProperty("删除标志（0代表存在 2代表删除）")
    @JsonIgnore
    @TableLogic
    private String delFlag;

    @ApiModelProperty("房源id ")
    @Excel(name = "房源id ")
    private String keyResourceId;

    @ApiModelProperty("整租还是合租")
    @Excel(name = "整租还是合租")
    private Integer leaseModel;

    @ApiModelProperty("房间编号 A,B,C,D")
    @Excel(name = "房间编号 A,B,C,D")
    private String roomNo;

    @ApiModelProperty("房间的全名")
    @Excel(name = "房间编号")
    private String roomName;

    @ApiModelProperty("房屋状态")
    private Integer roomState;



    @ApiModelProperty("房间配置信息,字符串切割,关联字典表")
    @Excel(name = "房间配置信息,字符串切割,关联字典表")
    @NotNull(message = "参数不正确",groups = {InsertResourceMode.class})
    private String configuration;

    @ApiModelProperty("房间图片列表,字符串切割")
    @Excel(name = "房间图片列表,字符串切割")
    @NotNull(message = "参数不正确",groups = {InsertResourceMode.class})
    private String images;

    @ApiModelProperty("房屋特色,字符切割,关联字典")
    @Excel(name = "房屋特色,字符切割,关联字典")
    @NotNull(message = "参数不正确",groups = {InsertResourceMode.class})
    private String feature;

    @ApiModelProperty("介绍")
    @Excel(name = "介绍")
    @NotNull(message = "参数不正确",groups = {InsertResourceMode.class})
    private String recommend;

    @ApiModelProperty("押金压多少:一个月 两个月 这个值直接压几传几就行")
    @Excel(name = "押金压多少:一个月 两个月")
    @NotNull(message = "参数不正确",groups = {InsertResourceMode.class})
    private Long cashPledgeMany;

    @ApiModelProperty("一次付多少个月")
    @Excel(name = "一次付多少个月")
    @NotNull(message = "参数不正确",groups = {InsertResourceMode.class})
    private Integer payMany;

    @ApiModelProperty("月租金多少")
    @Excel(name = "月租金多少")
    @NotNull(message = "参数不正确",groups = {InsertResourceMode.class})
    private BigDecimal normAmount;

    @ApiModelProperty("最低价")
    @Excel(name = "最低价")
    @NotNull(message = "参数不正确",groups = {InsertResourceMode.class})
    private BigDecimal lowAmount;

    @ApiModelProperty("服务费模板 枚举:无,按固定金额,按百分比")
    @Excel(name = "服务费模板 枚举:无,按固定金额,按百分比")
    @NotNull(message = "参数不正确",groups = {InsertResourceMode.class})
    private Integer serviceChargeMode;

    @ApiModelProperty("service_charge_mode 的 值")
    @Excel(name = "service_charge_mode 的 值")
    @NotNull(message = "参数不正确",groups = {InsertResourceMode.class})
    private BigDecimal serviceChargeValue;

    @ApiModelProperty("支付方式 随租金付 一次付清 ")
    @Excel(name = "支付方式 随租金付 一次付清 ")
    @NotNull(message = "参数不正确",groups = {InsertResourceMode.class})
    private Long serviceChargePayMode;

    @ApiModelProperty("支付时间偏移方式 ,使用枚举")
    private Integer payTime;
    @NotNull(message = "参数不正确",groups = {InsertResourceMode.class})

    @ApiModelProperty("支付时间偏移方式的值")
    @Excel(name = "支付时间偏移方式的值")
    @NotNull(message = "参数不正确",groups = {InsertResourceMode.class})
    private Integer payTimeValue;

    @ApiModelProperty("起租日是否限制")
    @NotNull(message = "参数不正确",groups = {InsertResourceMode.class})
    private Integer isAstrictStartLease;

    @ApiModelProperty("起租日不得晚于签约后多少天")
    @Excel(name = "起租日不得晚于签约后多少天")
    private Integer isAstrictStartLeaseValue;
    @ApiModelProperty("入住人的姓名")
    private String tenantName;
    @ApiModelProperty("入住人的手机号")
    private String tenantPhone;
}
